魔改 Qt Creator 插件框架(附源码) 您所在的位置:网站首页 qt creator 插件源码分析 魔改 Qt Creator 插件框架(附源码)

魔改 Qt Creator 插件框架(附源码)

2024-07-04 16:14| 来源: 网络整理| 查看: 265

星标/置顶 公众号👇,硬核文章第一时间送达!

几年前,我曾写过一些插件相关的文章,其中最成体系的当属 CTK 系列,一共 18 个章节,从 0 到 1 讲述了模块化编程在 C++/Qt 中的实际应用。

很多小伙伴曾学过这个框架/库,但真正用起来的没有几个,究其原因有如下几个:

编译不过(还没开始就结束了

搞不懂基本原理

不知道如何应用

认为没卵用(QTC 扩展系统的强化版,你说有用吗?)

......

一句话:很难学!的确是这样,因为我也经历过这个过程,所有的这些经验积累,都是我之前从 OSGI 那里一步步摸索,总结而来的!

所以如果要学会它,需要花费不少精力,当然了,同时你的内功也会大大提升!想想看,如果大家都学会了,怎么体现你的优秀!

话不多说,无论是想研究 CTK 还是其他插件框架,建议先从 Qt Plugin 开始,然后是 QTC 的 ExtensionSystem(官方术语,你也可以认为是插件系统),下面就来扒一扒这个 ExtensionSystem 的源码。

1

QTC 源码

如果要推荐 Qt 项目,我一定首选 QTC:https://github.com/qt-creator/qt-creator,Qt 官方开发的 IDE、良好的组织结构、优秀的代码设计、以及编码风格,我想没有比这个更值得深入研究的了!

虽然 QTC 中的代码很多,但要剥离插件框架其实也不难。进入 QTC 源码,找到 ExtensionSystem 就可以了,它是一个库,自身又依赖于 utils 库。所以如果想在自己的项目中使用 QTC 的插件框架,必须得同时把这两个都扒下来!

utils 里面是一些算法、性能诊断相关的功能,如果不想要它,只想要 ExtensionSystem,可以把这部分裁减掉,再魔改一下!

2

编写 QES

为了介绍和使用 ExtensionSystem,我编写了一个简单的程序,名为 QES(Qt ExtensionSystem 的缩写)。

这里面有插件的整体加载流程,以及两个测试插件 - coreplugin 和 helloworld。通过这个示例程序,你可以很容易地将 ExtensionSystem 移植到自己的项目中,并且能够快速地编写自己的插件。

如果对 QES 感兴趣,想学习源码,请访问我的 github:https://github.com/Waleon/QES,不要忘了给个 Star 哦!

往期推荐☞ 专辑 | 趣味设计模式☞ 专辑 | 音视频开发☞ 专辑 | C++ 进阶☞ 专辑 | 超硬核 Qt☞ 专辑 | 玩转 Linux☞ 专辑 | GitHub 开源推荐☞ 专辑 | 程序人生

关注公众号「高效程序员」👇,一起优秀!

回复 “入群” 进技术交流群,回复 “1024” 获取海量学习资源。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有